package com.lwl.blue.seven.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;

/**
 * 采购合同主表(Contract7)实体类
 *
 * @author makejava
 * @since 2025-09-17 14:45:30
 */
@Data
@TableName("contract_7")
public class Contract7 implements Serializable {
    private static final long serialVersionUID = -39551933320086776L;
    /**
     * 采购合同号内码(主键)
     */
    @TableId(value = "contract_id", type = IdType.AUTO)
    private Long contractId;
    /**
     * 合同号
     */
    @NotBlank(message = "合同号不能为空")
    private String contractNumber;
    /**
     * 采购合同号核销内码（先为空）
     */
    private Long contractIdWriteoff;
    /**
     * 采购合同核销号（先为空）
     */
    private String contractNumberWriteoff;
    /**
     * 末级业务单据号
     */
    private String finalBusinessCode;
    /**
     * 合同名称（用户手动输入）
     */
    @NotBlank(message = "合同名称不能为空")
    private String contractName;
    /**
     * 交易类型
     */
    private String transactionType;
    /**
     * 供应商ID
     */
    private Integer supplierId;
    /**
     * 我方签约主体（采购方）
     */
    private String buyingEntity;
    /**
     * 采购员（从用户列表选择，默认为创建人）
     */
    private String purchaser;
    /**
     * 合同生效日期
     */
    private Date effectiveDate;
    /**
     * 合同失效日期
     */
    private Date expiryDate;
    /**
     * 合同总额
     */
    private BigDecimal totalAmount;
    /**
     * 付款条件
     */
    private String paymentTerms;
    /**
     * 状态：10准备, 11驳回, 15修改, 30待审, 70执行, 80完结
     */
    private Integer status;
    /**
     * 创建人ID（系统自动记录）
     */
    private Long createUserId;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改人ID（系统自动记录）
     */
    private Long updateUserId;
    /**
     * 最后修改时间（系统自动记录）
     */
    private Date updateTime;
    /**
     * 审核人ID（系统自动记录）
     */
    private Long auditPersonId;
    /**
     * 审核时间
     */
    private Date auditTime;
    /**
     * 版本号（每次保存自动+1，用于乐观锁）
     */
    private Integer version;
    /**
     * 红冲标记：0正常，1红冲
     */
    private Integer redFlag;
    /**
     * 外部采购订单核销内码
     */
    private Long externalOrderId;
    /**
     * 外部采购订单核销外码
     */
    private String externalOrderCode;
    /**
     * 外部系统类型
     */
    private String externalSystemType;
    /**
     * 外部系统单据内码
     */
    private String externalSystemDocId;
    /**
     * 外部系统单号
     */
    private String externalSystemOrderNo;
    /**
     * 业务来源
     */
    private String businessSource;
    /**
     * 业务来源说明
     */
    private String businessSourceDesc;
    /**
     * 来源单据号
     */
    private String sourceDocNo;
    /**
     * 业务单据编码
     */
    private String businessDocCode;
    /**
     * 是否删除：0未删除，1已删除
     */
    private Integer isDeleted;
    /**
     * 备注（可为空）
     */
    private String remarks;




}

